System and method to select substitute ingredients in a food recipe

ABSTRACT

The program directs a computer processor to implement a program that selects at least one substitute ingredient for a food recipe based on a plurality of determined criteria. The program receives a food recipe comprising one or more ingredients, instructions, and preparation time. The program determines time constraints of a user. The program identifies one or more Internet of Things (IoT) enabled cooking devices that are available in a kitchen associated with the user to carry out the instructions of the food recipe. The program searches a market database in a market to identify available options for the at least one substitute ingredient found in the market database based on a similarity level of the at least one substitute ingredient compared with at least one ambiguous ingredient in the food recipe, and selects the at least one substitute ingredient according to the plurality of determined criteria.

BACKGROUND

The present disclosure relates generally to the field of cognitivecomputing, Internet of Things (IoT), and more particularly to dataprocessing and food recipes.

Cooking food may be referred to as an art that requires an expertise incombining ingredients to create a flavorful and satisfying meal. Variousfactors contribute to cooking a meal effectively. Those various factorsmay include savory ingredients, available and functioning cookingappliances, and proper time management of tending to the ingredients asthey are being prepared.

A problem that many individuals encounter on a daily basis is decidingwhat to make for a meal while perusing the supermarket aisles, in lightof the current ingredients as well as available cooking appliances, intheir home kitchen. Even if a consumer has a recipe in their hands whilerolling through the supermarket aisles, they may purchase the properingredients only to discover, when they get home, that their crockpot isbroken or they do not have enough flour according to the recipe.

BRIEF SUMMARY

Embodiments of the present invention disclose a method, a computerprogram product, and a system.

According to an embodiment, a method, in a data processing systemincluding a processor and a memory, for implementing a program thatadjusts a food recipe based on a plurality of determined criteria. Themethod receives the food recipe comprising one or more ingredients,instructions, and preparation time, and determines one or more timeconstraints of a user. The method identifies one or more Internet ofThings (IoT) enabled cooking devices that are available in a kitchenassociated with the user to carry out the instructions of the foodrecipe. The method searches a market database in a market to identifyone or more available options for the at least one substitute ingredientfound in the market database based on a similarity level of the at leastone substitute ingredient compared with at least one ambiguousingredient in the food recipe, and selects the at least one substituteingredient according to the plurality of determined criteria.

According to another embodiment, a computer program product fordirecting a computer processor to implement a program that adjusts afood recipe based on a plurality of determined criteria. The storagedevice embodies program code that is executable by a processor of acomputer to perform a method. The method receives the food recipecomprising one or more ingredients, instructions, and preparation time,and determines one or more time constraints of a user. The methodidentifies one or more Internet of Things (IoT) enabled cooking devicesthat are available in a kitchen associated with the user to carry outthe instructions of the food recipe. The method searches a marketdatabase in a market to identify one or more available options for theat least one substitute ingredient found in the market database based ona similarity level of the at least one substitute ingredient comparedwith at least one ambiguous ingredient in the food recipe, and selectsthe at least one substitute ingredient according to the plurality ofdetermined criteria.

According to another embodiment, a system for implementing a programthat manages a device, includes one or more computer devices each havingone or more processors and one or more tangible storage devices. The oneor more storage devices embody a program. The program has a set ofprogram instructions for execution by the one or more processors. Theprogram instructions include instructions for adjusting a food recipebased on a plurality of determined criteria. The program instructionsinclude instructions for receiving the food recipe comprising one ormore ingredients, instructions, and preparation time, and determiningone or more time constraints of a user. The program instructions furtherinclude instructions for identifying one or more Internet of Things(IoT) enabled cooking devices that are available in a kitchen associatedwith the user to carry out the instructions of the food recipe. Theprogram instructions further include instructions for searching a marketdatabase in a market to identify one or more available options for theat least one substitute ingredient found in the market database based ona similarity level of the at least one substitute ingredient comparedwith at least one ambiguous ingredient in the food recipe, and selectingthe at least one substitute ingredient according to the plurality ofdetermined criteria.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates computing environment 100, in accordance with anembodiment of the present invention.

FIG. 2 is a flowchart illustrating the operation of recipe optimizerassistant 120 of FIG. 1, in accordance with embodiments of the presentinvention.

FIG. 3 illustrates a multi-factor optimization feature of recipeoptimizer assistant 120 of FIG. 1, in accordance with embodiments of thepresent invention.

FIG. 4 is a diagram graphically illustrating the hardware components ofa computing environment of FIG. 1, in accordance with an embodiment ofthe present invention.

FIG. 5 depicts a cloud computing environment, in accordance with anembodiment of the present invention.

FIG. 6 depicts abstraction model layers of the illustrative cloudcomputing environment of FIG. 5, in accordance with an embodiment of thepresent invention.

DETAILED DESCRIPTION

The present invention discloses a method that considers a substitutionof ingredients in a food recipe with respect to a user's timeconstraints, how close the substitute ingredients are to the originalingredients, and the availability of the user's IoT enabled cookingdevices to carry out the recipe instructions. The present invention alsoconsiders the sales goals of the grocery store where the ingredients arebeing purchased.

For example, Rob is shopping at the grocery store at 6 pm on a weeknightand is viewing a recipe on an application on his mobile device that isusing the proposed invention. His phone is also connected to the IoTenabled cooking devices in his home kitchen. The proposed inventiondetermines that a time constraint is likely (e.g. by checking Rob'scalendar on his mobile device) and thus quicker preparation of thechosen recipe is highly preferred. The recipe that Rob is viewing callsfor chicken breast, which is considered an ambiguous item since thereare many different replacement options for chicken breast in the grocerystore, some of which may take less time to prepare/cook. The proposedinvention searches the grocery store database to find alternativeoptions for chicken breast which include frozen chicken, canned chicken,and fresh deli chicken. The items are prioritized by the store based onsales goals. Each item is compared to the availability of the IoTenabled cooking device in Rob's home kitchen.

The proposed invention runs a multi-factor optimization where thealternative options for chicken breast items are compared in relation tothe impact of the cooking time using an available IoT enabled cookingdevice, the prioritization of sales goals of the grocery store, and thedeviation of the substituted chicken item from a “closest to scratch”factor. Ultimately, in this example, the frozen chicken may be selectedas a substitute for the called-for chicken breast because Rob has an IoTpressure cooker in his home kitchen, which impacts the cooking timedramatically and there is currently a sale on frozen chicken, as well asthe fact that the pressure cooker makes a good tasting chicken for thecompleted recipe.

Hereinafter, exemplary embodiments of the present invention will bedescribed in detail with reference to the attached drawings.

The present invention is not limited to the exemplary embodiments below,but may be implemented with various modifications within the scope ofthe present invention. In addition, the drawings used herein are forpurposes of illustration, and may not show actual dimensions.

FIG. 1 illustrates computing environment 100, in accordance with anembodiment of the present invention. Computing environment 100 includescomputing device 110, database server 130, market server 140, and IoTenabled cooking device 150, all connected via network 102. The setup inFIG. 1 represents an example embodiment configuration for the presentinvention, and is not limited to the depicted setup in order to derivebenefit from the present invention.

In the example embodiment, computing device 110 contains user interface112, global positioning system (GPS) 114, calendar 116 and recipeoptimizer assistant 120. In various embodiments, computing device 110may be a laptop computer, tablet computer, netbook computer, personalcomputer (PC), a desktop computer, a personal digital assistant (PDA), asmart phone, or any programmable electronic device capable ofcommunicating with database server 130, market server 140, and IoTenabled cooking device 150 via network 102. Computing device 110 mayinclude internal and external hardware components, as depicted anddescribed in further detail below with reference to FIG. 4. In otherembodiments, computing device 110 may be implemented in a cloudcomputing environment, as described in relation to FIGS. 5 and 6,herein. Computing device 110 may also have wireless connectivitycapabilities allowing it to communicate with database server 130, marketserver 140, IoT enabled cooking device 150, and other computers orservers over network 102.

In the example embodiment, computing device 110 includes user interface112, which may be a computer program that allows a user to interact withcomputing device 110 and other connected devices via network 102. Forexample, user interface 112 may be a graphical user interface (GUI). Inaddition to comprising a computer program, user interface 112 may beconnectively coupled to hardware components, such as those depicted inFIG. 4, for receiving user input. In the example embodiment, userinterface 112 is a web browser, however in other embodiments userinterface 112 may be a different program capable of receiving userinteraction and communicating with other devices.

In the example embodiment, GPS 114 is a computer program on computingdevice 110 that provides time and location information for a user.Modern GPS systems operate on the concept of time and location. Inmodern GPS systems, four or more satellites broadcast a continuoussignal detailing satellite identification information, time oftransmission (TOT), and the precise location of the satellite at thetime of transmission. When a GPS receiver picks up the signal, itdetermines the difference in time between the time of transmission (TOT)and the time of arrival (TOA). Based on the amount of time it took toreceive the signals and the precise locations of the satellites when thesignals were sent, GPS receivers are capable of determining the locationwhere the signals were received. In the example embodiment, GPS 114 iscapable of providing real-time location detection of the user, togetherwith an estimated time of arrival for a given destination based onreal-time traffic, weather conditions, and so forth.

In the example embodiment, calendar 116 may be a computer program, oncomputing device 110, that syncs a user's electronic calendar fromanother computing device, or application, to calendar 116. Calendar 116may include a user's personal calendar such as birthdays, vacationdates, travelling schedule, personal event information, as well as auser's work calendar such as meeting dates/times, conferencedates/times, travelling schedule dates/times, and so forth. Calendar116, in the example embodiment, is capable of communicating with recipeoptimizer assistant 120.

In the example embodiment, database server 130 includes recipe database132 and may be a laptop computer, tablet computer, netbook computer,personal computer (PC), a desktop computer, a personal digital assistant(PDA), a smart phone, a server, or any programmable electronic devicecapable of communicating with computing device 110, market server 140,and IoT enabled cooking device 150 via network 102. While databaseserver 130 is shown as a single device, in other embodiments, databaseserver 130 may be comprised of a cluster or plurality of computingdevices, working together or working separately.

In the example embodiment, recipe database 132 contains a list of one ormore food recipes. A food recipe details necessary ingredients togetherwith their respective measurements (e.g. mL, teaspoon, bushel, cup),stepwise instructions to carry out the recipe, and an estimated time toexecute the recipe from start to finish. Recipe database 132 may alsoinclude suggested oven cooking temperatures, cooking appliances (i.e.cooking devices), forms of various ingredients (e.g. diced, frozen,pre-chopped), and “closeness to scratch” ingredients. “Closeness toscratch” ingredients include alternative options, or substituteingredients, for various called-for ingredients in a food recipe. Forexample, a food recipe may call for mushrooms. The user may have achoice to buy fresh mushrooms from the produce aisle in the grocerystore, or canned mushrooms containing preservatives. In this case, thefresh mushrooms from the produce aisle are considered more scratch, orcloser to the called-for food recipe ingredient, than the cannedmushrooms.

In an exemplary embodiment, recipe database 132 may be organizedaccording to a category of food (e.g. pasta, meat, dairy), a meal timecategory (e.g. breakfast, lunch, dinner), or any other category ororganization deemed most useful for the invention to be utilized.

In various embodiments, recipe database 132 is capable of being storedon recipe optimizer assistant 120, or computing device 110, as aseparate database.

In the example embodiment, market server 140 includes market inventory142 and may be a laptop computer, tablet computer, netbook computer,personal computer (PC), a desktop computer, a personal digital assistant(PDA), a smart phone, a server, or any programmable electronic devicecapable of communicating with computing device 110, database server 130,and IoT enabled cooking device 150 via network 102. While market server140 is shown as a single device, in other embodiments, market server 140may be comprised of a cluster or plurality of computing devices, workingtogether or working separately.

In an exemplary embodiment, market server 140 may be a grocery storedatabase containing market inventory 142, which details a list of fooditems in stock at the grocery store, a quantity value of those fooditems in stock, and sales promotions for particular food items in stock.Market inventory 142, in an exemplary embodiment, may also be capable ofproviding expiration dates for particular food items in stock which maybe helpful in promoting these particular items to shoppers before theyexpire. In alternative embodiments, market inventory 142 may be capableof re-ordering food items, through respective suppliers, that areexpired, about to expire, or in high-demand by consumers.

In alternative embodiments, a user may have her own user profile accountassociated with market server 140, thus enabling market server 140 torecommend ingredients, or products, from the market that are specific toa user's dietary habits, past shopping experience, etc. Additionally, invarious embodiments, a user may request delivery to a designatedlocation (e.g. a user's home) of one or more products from marketinventory 142 via third party food delivery services.

In an exemplary embodiment, IoT enabled cooking device 150 may includeone or more kitchen cooking devices located in the home of a user, or ina location where a user intends to cook a meal with base ingredients ofthe chosen food recipe. IoT enabled cooking device 150 may be acrockpot, a mixer, a baking oven, a pressure cooker, a microwave oven,or any other kitchen appliance or cooking device located in the homekitchen of the user that is capable of wirelessly communicating withcomputing device 110, database server 130, and market server 140 vianetwork 102 to relay relevant information to the user in real-time.Relevant information to the user may include the availability of thespecific IoT enabled cooking device 150, for example whether it isfunctioning properly, whether it is clean, whether it needs time to warmup (and how much time) prior to using, and whether it has power in itsbatteries (if battery operated). The specific IoT enabled cooking device150 may also convey to the user, via recipe optimizer assistant 120, therequired time to cook a food item, the preparation time involved, andthe typical amount of time to clean up after the food item is cooked orprepared.

With continued reference to FIG. 1, recipe optimizer assistant 120, inthe example embodiment, may be a computer application on computingdevice 110 that contains instruction sets, executable by a processor.The instruction sets may be described using a set of functional modules.Recipe optimizer assistant 120 receives input from user interface 112,GPS 114, calendar 116, database server 130, market server 140, and IoTenabled cooking device 150. In alternative embodiments, recipe optimizerassistant 120 may be a standalone program on a separate electronicdevice. In an exemplary embodiment, recipe optimizer assistant 120 maybe configured to store various food recipes for a user.

With continued reference to FIG. 1, the functional modules of recipeoptimizer assistant 120 include recipe receiver 122, time constraintevaluator 124, cooking device evaluator 126, and ingredient optimizer128.

FIG. 2 is a flowchart illustrating the operation of recipe optimizerassistant 120 of FIG. 1, in accordance with embodiments of the presentinvention.

With reference to FIGS. 1 and 2, recipe receiver 122 includes a set ofprogramming instructions, in recipe optimizer assistant 120, to receivea food recipe comprising one or more ingredients, instructions, andpreparation time (step 202). The set of programming instructions isexecutable by a processor. In the exemplary embodiment, recipe receiver122 may obtain (i.e. receive) food recipes from recipe database 132,alternative software applications of the user (i.e. recipe applicationson computing device 110), or from user-saved recipes stored on recipeoptimizer assistant 120.

With continued reference to FIGS. 1 and 2, time constraint evaluator 124includes a set of programming instructions in recipe optimizer assistant120, to determine one or more time constraints of a user (step 204). Inan exemplary embodiment, time constraint evaluator 124 may determine theone or more time constraints of the user by evaluating a schedule of theuser by accessing a calendar 116 of the user and comparing the calendar116 of the user with an amount of time required to fulfill the foodrecipe. Time constraint evaluator 124 may also detect a current locationof the user, predict an estimated time for the user to arrive at home,and compare the estimated time for the user to arrive at home with theamount of time required to complete the food recipe. For example, if auser has a meeting at 8 pm and is expected to arrive at home by 7 pm,then a food recipe that requires over an hour of preparation time mayinterfere with the user's schedule.

With continued reference to FIGS. 1 and 2, cooking device evaluator 126includes a set of programming instructions in recipe optimizer assistant120, to identify one or more Internet of Things (IoT) enabled cookingdevices 150 that are available in a kitchen associated with the user tocarry out the instructions of the food recipe (step 206). The set ofprogramming instructions is executable by a processor.

With continued reference to FIGS. 1 and 2, ingredient optimizer 128includes a set of programming instructions in recipe optimizer assistant120, to search a market inventory 142 in a market to identify one ormore available options for at least one substitute ingredient found inthe market inventory 142 based on a similarity level of the at least onesubstitute ingredient compared with the at least one ambiguousingredient in the food recipe (step 208). The at least one ambiguousingredient in the food recipe comprises a food item that may besubstituted with an alternative food item. The set of programminginstructions is executable by a processor.

In an exemplary embodiment, a user may adjust one or more settings ofingredient optimizer 128 to broaden or narrow a list of availableoptions at a market for the at least one substitute ingredient based onuser input. For example, if the user only wants fresh vegetables (i.e.perishables) as ingredients in the food recipe, then she may adjust thesettings in ingredient optimizer 128 to narrow the search results toexclude canned vegetable items, and so forth.

In an exemplary embodiment, ingredient optimizer 128 may be capable ofunderstanding that a combination of ingredients can equal a singleingredient. Cross-referencing one ingredient with one or more substituteingredients is known to one of ordinary skill in the art.

In an exemplary embodiment, ingredient optimizer 128 prioritizes thedetermined one or more available options for the at least one substituteingredient found in the market database based on sales goals of themarket. For example, with reference to the illustrative example above,ingredient optimizer 128 accesses market inventory 142 to discover thatthe ambiguous ingredient “chicken breast” has four alternative purchaseoptions at the market where the user is purchasing her ingredients. Eachalternative purchase option has a corresponding score, from 0 to 1 (e.g.1 representing market interest in selling the food item as quickly aspossible), indicating its “relevancy to the market to sell”. The fouralternative options, in this example, together with the respectiveassigned score indicating “relevancy to the market to sell” are: (1)refrigerator section chicken [0.5], (2) behind the counter chicken[0.6], (3) frozen chicken [0.8], and (4) canned chicken [0.1]. In thisexample, the market suggests to purchase frozen chicken (i.e. with ascore of 0.8) over the other alternative items, due to the fact that thefrozen chicken may be closer to its sell-by date than the othersuggested alternative ingredient options.

The score assigned to each alternative, or substitute, ingredient basedon “relevancy to the market to sell” is only one factor that is used byrecipe optimizer assistant 120 when evaluating which substituteingredient to select for the food recipe. In alternative embodiments,the other two factors considered by recipe optimizer assistant 120 arethe substitute ingredients' closeness to scratch of the originalingredient of the food recipe, and the IoT enabled cooking device 150availability factor.

In an exemplary embodiment, ingredient optimizer 128 prioritizes thedetermined one or more available options for the at least one substituteingredient found in the market inventory 142 based on a similarity levelof the at least one substitute ingredient compared with the at least oneambiguous ingredient in the food recipe. The similarity level mayinclude a score, or ranking, of the at least one substitute ingredient,as found in market inventory 142, based on its “closeness to scratch” tothe original ingredient (i.e. ambiguous ingredient) in the food recipe.

For example, referring back to the illustrative example above,ingredient optimizer 128 accesses market inventory 142 to discover thatthe ambiguous ingredient “chicken breast” has four alternative purchaseoptions at the market where the user is purchasing her ingredients,together with a score from 0 to 1 (e.g. 1 representing “closest toscratch”) indicating its “closeness to scratch” to the originalingredient (e.g. chicken breast) in the food recipe. The fouralternative options, together with the respective assigned scoreindicating “closeness to scratch” are: (1) refrigerator section chicken[0.7], (2) behind the counter chicken [0.7], (3) frozen chicken [0.5],and (4) canned chicken [0.2]. In this example, the market suggests topurchase either refrigerator section chicken or behind the counterchicken (both with a score of 0.7) over the other alternative items, dueto the fact that these ingredients are “closest to scratch” of the foodrecipe.

The score assigned to each alternative, or substitute, ingredient basedon “closeness to scratch” is only one factor that is used by recipeoptimizer assistant 120 when evaluating which substitute ingredient toselect for the food recipe. In alternative embodiments, the other twofactors considered by recipe optimizer assistant 120 are the substituteingredients' relevancy to the sales goals of the market, and the IoTenabled cooking device 150 availability factor.

In an exemplary embodiment, ingredient optimizer 128 prioritizes thedetermined one or more available options for the at least one substituteingredient found in the market database based on availability of the oneor more Internet of Things (IoT) enabled cooking devices in a kitchenassociated with a user and an amount of time required to complete thefood recipe for a given substitute ingredient. In an exemplaryembodiment, one or more IoT enabled cooking devices 150 associated witha kitchen of the user may transmit a score, or ranking, detailing itsavailability to fulfill instructions in the food recipe for a givensubstitute ingredient.

For example, referring back to the illustrative example above,ingredient optimizer 128 may access IoT enabled cooking device 150 todiscover the best available substitute ingredient option based on theavailability of an IoT enabled cooking device 150 needed to assist inpreparing a chosen alternative option ingredient in a food recipe. In anexemplary embodiment, ingredient optimizer 128 may assign a score from 0to 1 (e.g. 1 representing a highly recommended IoT enabled cookingdevice 150 based on availability, preparation time, and clean-up timewith regards to each alternative option ingredient). For example, withcontinued reference to the illustrative example above, the fouralternative “chicken breast” options, together with the respectiveassigned score indicating an “IoT availability factor” are: (1)refrigerator section chicken [0.5], (2) behind the counter chicken[0.5], (3) frozen chicken [0.8], and (4) canned chicken [0.9]. In thisexample, the market suggests to purchase frozen chicken (with a highscore of 0.8 compared to the alternatives), due to the fact that theuser may have an IoT enabled cooking device 150 at home that isavailable for use and can defrost the frozen chicken quickly.

The score assigned to each alternative, or substitute, ingredient basedon an “IoT availability factor” is only one factor that is used byrecipe optimizer assistant 120 when evaluating which substituteingredient to select for the food recipe. In alternative embodiments,the other two factors considered by recipe optimizer assistant 120 arethe substitute ingredients' closeness to scratch of the originalingredient of the food recipe and the substitute ingredients' relevancyto the sales goals of the market.

With continued reference to FIGS. 1 and 2, ingredient optimizer 128includes a set of programming instructions in recipe optimizer assistant120, to select the at least one substitute ingredient according to thespecific criteria (step 210). The set of programming instructions isexecutable by a processor. In an exemplary embodiment, specific criteriarefers to (1) the substitute ingredients' relevancy to the sales goalsof the market, (2) the substitute ingredients' closeness to scratch, and(3) the IoT enabled cooking device 150 availability factor.

Pursuant to an exemplary embodiment, selecting the at least onesubstitute ingredient according to the specific criteria furtherincludes performing a multi-factor optimization wherein the at least onesubstitute ingredient available at a market is evaluated in relation toan amount of time required to complete the food recipe using availableInternet of Things (IoT) enabled cooking devices 150 located within akitchen of a user, sales goals of the market, and a similarity level ofthe at least one substitute ingredient compared with the at least oneambiguous ingredient in the food recipe.

FIG. 3 illustrates a multi-factor optimization feature of recipeoptimizer assistant 120 of FIG. 1, in accordance with embodiments of thepresent invention.

With reference to FIGS. 1, 2, and 3, recipe optimizer assistant 120performs a multi-factor optimization to select a substitute ingredientfor a recipe based on a plurality of determined criteria factors of auser. For example, in an exemplary illustrative use case, a user is onher way home from work and is running late. She is expected to be homeby 7:00 pm, however she has a tele-conference call at 8:00 pm and hasnot yet planned what to make for dinner. The user searches recipe ideasfrom a mobile application on her smart phone and selects a recipe for anambiguous Juicy Balsamic Chicken Breast. Recipe optimizer assistant 120considers the following specific criteria: (1) time constraint evaluator124 calculates, in real-time, commute to home data of the user via GPS114, (i.e. traffic, train/bus schedules if applicable) as well asaccesses calendar 116 which informs recipe optimizer assistant 120 thatthe user has a teleconference at 8:00 pm; (2) cooking device evaluator126 accesses the IoT enabled cooking devices 150 that the user owns anddetermines whether they are available for use in real-time (i.e. arethey currently clean, functioning, etc.); (3) ingredient optimizer 128searches a market inventory 142 to identify one or more availableoptions for the at least one substitute ingredient that is closest toscratch for an ambiguous ingredient in the food recipe, as well as thesales goals of a market for the at least one substitute ingredient.

With reference to FIG. 3, recipe optimizer assistant 120 filters theresults from a user's time constraint factor, a user's available IoTenabled cooking device 150 factor, and a market's available options andsales goals, by assigning a score, or ranking, to each consideredsubstitute ingredient located in the market inventory 142 according toeach specific criteria listed above. FIG. 3 depicts a table illustratingthe four substitute ingredients found in market inventory 142 for theambiguous ingredient “chicken breast”, together with the three specificcriteria factors considered. The assigned scores for each ingredient andits respective criteria factor, as filtered by recipe optimizerassistant 120, are added up and a final cumulative score is presented.The highest cumulative score determines the ingredient selected byingredient optimizer 128.

With continued reference to the illustrative example above, and withcontinued reference to FIG. 3, the following cumulative scores for thefour substitute ingredients are presented as follows: (1) refrigeratorsection chicken [1.7]; (2) behind the counter chicken [1.8]; (3) frozenchicken [2.1]; and (4) canned chicken [1.2]. As such, recipe optimizerassistant 120 selects frozen chicken as the optimal substituteingredient for “chicken breast” in the food recipe based on theavailability of the user's pressure cooker, the high need for the marketto sell this item, and the closeness to scratch of the frozen chickenitem. The user is thus able to successfully prepare the chosen foodrecipe based on her limited time frame. Additionally, the marketsuccessfully makes a sale of a high margin product that they arecurrently running a special on.

In various alternative embodiments, ingredient optimizer 128 is capableof using a learning feedback mechanism to learn and validate accuracy ofa selection, by a user, of the at least one substitute ingredient.

In the example embodiment, network 102 is a communication channelcapable of transferring data between connected devices and may be atelecommunications network used to facilitate telephone calls betweentwo or more parties comprising a landline network, a wireless network, aclosed network, a satellite network, or any combination thereof. Inanother embodiment, network 102 may be the Internet, representing aworldwide collection of networks and gateways to support communicationsbetween devices connected to the Internet. In this other embodiment,network 102 may include, for example, wired, wireless, or fiber opticconnections which may be implemented as an intranet network, a localarea network (LAN), a wide area network (WAN), or any combinationthereof. In further embodiments, network 102 may be a Bluetooth network,a WiFi network, or a combination thereof. In general, network 102 can beany combination of connections and protocols that will supportcommunications between computing device 110, database server 130, marketserver 140, and IoT enabled cooking device 150.

FIG. 4 is a block diagram depicting components of a computing device(such as computing device 110, database server 130, and market server140, as shown in FIG. 1), in accordance with an embodiment of thepresent invention. It should be appreciated that FIG. 4 provides only anillustration of one implementation and does not imply any limitationswith regard to the environments in which different embodiments may beimplemented. Many modifications to the depicted environment may be made.

Computing device 110 may include one or more processors 902, one or morecomputer-readable RAMs 904, one or more computer-readable ROMs 906, oneor more computer readable storage media 908, device drivers 912,read/write drive or interface 914, network adapter or interface 916, allinterconnected over a communications fabric 918. Communications fabric918 may be implemented with any architecture designed for passing dataand/or control information between processors (such as microprocessors,communications and network processors, etc.), system memory, peripheraldevices, and any other hardware components within a system.

One or more operating systems 910, and one or more application programs911, such as recipe optimizer assistant 120, may be stored on one ormore of the computer readable storage media 908 for execution by one ormore of the processors 902 via one or more of the respective RAMs 904(which typically include cache memory). In the illustrated embodiment,each of the computer readable storage media 908 may be a magnetic diskstorage device of an internal hard drive, CD-ROM, DVD, memory stick,magnetic tape, magnetic disk, optical disk, a semiconductor storagedevice such as RAM, ROM, EPROM, flash memory or any othercomputer-readable tangible storage device that can store a computerprogram and digital information.

Computing device 110 may also include a R/W drive or interface 914 toread from and write to one or more portable computer readable storagemedia 926. Application programs 911 on computing device 110 may bestored on one or more of the portable computer readable storage media926, read via the respective R/W drive or interface 914 and loaded intothe respective computer readable storage media 908.

Computing device 110 may also include a network adapter or interface916, such as a TCP/IP adapter card or wireless communication adapter(such as a 4G wireless communication adapter using OFDMA technology).Application programs 911 on computing device 110 may be downloaded tothe computing device from an external computer or external storagedevice via a network (for example, the Internet, a local area network orother wide area network or wireless network) and network adapter orinterface 916. From the network adapter or interface 916, the programsmay be loaded onto computer readable storage media 908. The network maycomprise copper wires, optical fibers, wireless transmission, routers,firewalls, switches, gateway computers and/or edge servers.

Computing device 110 may also include a display screen 920, a keyboardor keypad 922, and a computer mouse or touchpad 924. Device drivers 912interface to display screen 920 for imaging, to keyboard or keypad 922,to computer mouse or touchpad 924, and/or to display screen 920 forpressure sensing of alphanumeric character entry and user selections.The device drivers 912, R/W drive or interface 914 and network adapteror interface 916 may comprise hardware and software (stored on computerreadable storage media 908 and/or ROM 906).

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

Referring now to FIG. 5, illustrative cloud computing environment 50 isdepicted. As shown, cloud computing environment 50 includes one or morecloud computing nodes 10 with which local computing devices used bycloud consumers, such as, for example, personal digital assistant (PDA)or cellular telephone 54A, desktop computer 54B, laptop computer 54C,and/or automobile computer system 54N may communicate. Nodes 10 maycommunicate with one another. They may be grouped (not shown) physicallyor virtually, in one or more networks, such as Private, Community,Public, or Hybrid clouds as described hereinabove, or a combinationthereof. This allows cloud computing environment 50 to offerinfrastructure, platforms and/or software as services for which a cloudconsumer does not need to maintain resources on a local computingdevice. It is understood that the types of computing devices 54A-N shownin FIG. 5 are intended to be illustrative only and that computing nodes10 and cloud computing environment 50 can communicate with any type ofcomputerized device over any type of network and/or network addressableconnection (e.g., using a web browser).

Referring now to FIG. 6, a set of functional abstraction layers providedby cloud computing environment 50 (FIG. 5) is shown. It should beunderstood in advance that the components, layers, and functions shownin FIG. 6 are intended to be illustrative only and embodiments of theinvention are not limited thereto. As depicted, the following layers andcorresponding functions are provided:

Hardware and software layer 60 includes hardware and softwarecomponents. Examples of hardware components include: mainframes 61; RISC(Reduced Instruction Set Computer) architecture based servers 62;servers 63; blade servers 64; storage devices 65; and networks andnetworking components 66. In some embodiments, software componentsinclude network application server software 67 and database software 68.

Virtualization layer 70 provides an abstraction layer from which thefollowing examples of virtual entities may be provided: virtual servers71; virtual storage 72; virtual networks 73, including virtual privatenetworks; virtual applications and operating systems 74; and virtualclients 75.

In one example, management layer 80 may provide the functions describedbelow. Resource provisioning 81 provides dynamic procurement ofcomputing resources and other resources that are utilized to performtasks within the cloud computing environment. Metering and Pricing 82provide cost tracking as resources are utilized within the cloudcomputing environment, and billing or invoicing for consumption of theseresources. In one example, these resources may include applicationsoftware licenses. Security provides identity verification for cloudconsumers and tasks, as well as protection for data and other resources.User portal 83 provides access to the cloud computing environment forconsumers and system administrators. Service level management 84provides cloud computing resource allocation and management such thatrequired service levels are met. Service Level Agreement (SLA) planningand fulfillment 85 provide pre-arrangement for, and procurement of,cloud computing resources for which a future requirement is anticipatedin accordance with an SLA.

Workloads layer 90 provides examples of functionality for which thecloud computing environment may be utilized. Examples of workloads andfunctions which may be provided from this layer include: mapping andnavigation 91; software development and lifecycle management 92; virtualclassroom education delivery 93; data analytics processing 94;transaction processing 95; and controlling access to data objects 96.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

Based on the foregoing, a computer system, method, and computer programproduct have been disclosed. However, numerous modifications andsubstitutions can be made without deviating from the scope of thepresent invention. Therefore, the present invention has been disclosedby way of example and not limitation.

1. A computer-implemented method for adjusting a food recipe based on aplurality of determined criteria, comprising: receiving the food recipecomprising one or more ingredients, instructions, and preparation time;determining one or more time constraints of a user, wherein thedetermining comprises performing one or both of: evaluating a scheduleof the user by accessing a calendar of the user and comparing thecalendar of the user with an amount of time required to fulfill the foodrecipe; and detecting a current location of the user, predicting anestimated time for the user to arrive at home, and comparing theestimated time for the user to arrive at home with the amount of timerequired to complete the food recipe; identifying one or more Internetof Things (IoT) enabled cooking devices that are available in a kitchenassociated with the user to carry out the instructions of the foodrecipe; searching a market database in a market to identify one or moreavailable options for the at least one substitute ingredient found inthe market database based on a similarity level of the at least onesubstitute ingredient compared with at least one ambiguous ingredient inthe food recipe, wherein the at least one ambiguous ingredient in thefood recipe comprises a food item that may be substituted with analternative food item; and selecting the at least one substituteingredient according to the plurality of determined criteria, whereinselecting, by the processor, the at least one substitute ingredientaccording to the plurality of determined criteria further comprises:performing, by the processor, a multi-factor optimization wherein the atleast one substitute ingredient available at a market is evaluated inrelation to an amount of time required to complete the food recipe usingthe one or more identified Internet of Things (IoT) enabled cookingdevices that are available in a kitchen associated with the user.
 2. Thecomputer-implemented method of claim 1, further comprising: prioritizingthe determined one or more available options for the at least onesubstitute ingredient found in the market database based on sales goalsof the market.
 3. The computer-implemented method of claim 1, furthercomprising: prioritizing the determined one or more available optionsfor the at least one substitute ingredient found in the market databasebased on a similarity level of the at least one substitute ingredientcompared with the at least one ambiguous ingredient in the food recipe.4. The computer-implemented method of claim 1, further comprising:prioritizing the determined one or more available options for the atleast one substitute ingredient found in the market database based onavailability of the one or more identified Internet of Things (IoT)enabled cooking devices and an amount of time required to complete thefood recipe.
 5. The computer-implemented method of claim 1, whereinperforming a multi-factor optimization further comprises sales goals ofthe market and a similarity level of the at least one substituteingredient compared with the at least one ambiguous ingredient in thefood recipe.
 6. The computer-implemented method of claim 1, furthercomprising: adjusting one or more settings to broaden or narrow a listof available options at a market for the at least one substituteingredient based on user input.
 7. The computer-implemented method ofclaim 1, further comprising: using a learning feedback mechanism tolearn and validate accuracy of a selection, by a user, of the at leastone substitute ingredient.
 8. A computer program product forimplementing a program that manages a device, comprising anon-transitory tangible storage device having program code embodiedtherewith, the program code executable by a processor of a computer toperform a method, the method comprising: receiving, by the processor,the food recipe comprising one or more ingredients, instructions, andpreparation time; determining, by the processor, one or more timeconstraints of a user, wherein the determining comprises performing oneor both of: evaluating, by the processor, a schedule of the user byaccessing a calendar of the user and comparing the calendar of the userwith an amount of time required to fulfill the food recipe; anddetecting, by the processor, a current location of the user, predicting,by the processor, an estimated time for the user to arrive at home, andcomparing, by the processor, the estimated time for the user to arriveat home with the amount of time required to complete the food recipe;identifying, by the processor, one or more Internet of Things (IoT)enabled cooking devices that are available in a kitchen associated withthe user to carry out the instructions of the food recipe; searching, bythe processor, a market database in a market to identify one or moreavailable options for the at least one substitute ingredient found inthe market database based on a similarity level of the at least onesubstitute ingredient compared with at least one ambiguous ingredient inthe food recipe, wherein the at least one ambiguous ingredient in thefood recipe comprises a food item that may be substituted with analternative food item; and selecting, by the processor, the at least onesubstitute ingredient according to the specific criteria, whereinselecting, by the processor, the at least one substitute ingredientaccording to the plurality of determined criteria further comprises:performing, by the processor, a multi-factor optimization wherein the atleast one substitute ingredient available at a market is evaluated inrelation to an amount of time required to complete the food recipe usingthe one or more identified Internet of Things (IoT) enabled cookingdevices that are available in a kitchen associated with the user.
 9. Thecomputer program product of claim 8, further comprising: prioritizing,by the processor, the determined one or more available options for theat least one substitute ingredient found in the market database based onsales goals of the market.
 10. The computer program product of claim 8,further comprising: prioritizing, by the processor, the determined oneor more available options for the at least one substitute ingredientfound in the market database based on a similarity level of the at leastone substitute ingredient compared with the at least one ambiguousingredient in the food recipe.
 11. The computer program product of claim8, further comprising: prioritizing, by the processor, the determinedone or more available options for the at least one substitute ingredientfound in the market database based on availability of the one or moreidentified Internet of Things (IoT) enabled cooking devices in a kitchenassociated with the user and an amount of time required to complete thefood recipe.
 12. The computer program product of claim 8, whereinperforming a multi-factor optimization further comprises sales goals ofthe market and a similarity level of the at least one substituteingredient compared with the at least one ambiguous ingredient in thefood recipe.
 13. The computer program product of claim 8, furthercomprising: adjusting, by the processor, one or more settings to broadenor narrow a list of available options at a market for the at least onesubstitute ingredient based on user input.
 14. The computer programproduct of claim 8, further comprising: using, by the processor, alearning feedback mechanism to learn and validate accuracy of aselection, by a user, of the at least one substitute ingredient.
 15. Acomputer system for implementing a program that manages a device,comprising: one or more computer devices each having one or moreprocessors and one or more tangible storage devices; and a programembodied on at least one of the one or more storage devices, the programhaving a plurality of program instructions for execution by the one ormore processors, the program instructions comprising instructions for:receiving, by the computer, the food recipe comprising one or moreingredients, instructions, and preparation time; determining, by thecomputer, one or more time constraints of a user, wherein thedetermining comprises performing one or both of: evaluating, by thecomputer, a schedule of the user by accessing a calendar of the user andcomparing the calendar of the user with an amount of time required tofulfill the food recipe; and detecting, by the computer, a currentlocation of the user, predicting, by the computer, an estimated time forthe user to arrive at home, and comparing, by the computer, theestimated time for the user to arrive at home with the amount of timerequired to complete the food recipe; identifying, by the computer, oneor more Internet of Things (IoT) enabled cooking devices that areavailable in a kitchen associated with the user to carry out theinstructions of the food recipe; searching, by the computer, a marketdatabase in a market to identify one or more available options for theat least one substitute ingredient found in the market database based ona similarity level of the at least one substitute ingredient comparedwith at least one ambiguous ingredient in the food recipe, wherein theat least one ambiguous ingredient in the food recipe comprises a fooditem that may be substituted with an alternative food item; andselecting, by the computer, the at least one substitute ingredientaccording to the plurality of determined criteria, wherein selecting, bythe computer, the at least one substitute ingredient according to theplurality of determined criteria further comprises: performing, by thecomputer, a multi-factor optimization wherein the at least onesubstitute ingredient available at a market is evaluated in relation toan amount of time required to complete the food recipe using the one ormore identified Internet of Things (IoT) enabled cooking devices thatare available in a kitchen associated with the user.
 16. The computersystem of claim 15, further comprising: prioritizing, by the computer,the determined one or more available options for the at least onesubstitute ingredient found in the market database based on sales goalsof the market.
 17. The computer system of claim 15, further comprising:prioritizing, by the computer, the determined one or more availableoptions for the at least one substitute ingredient found in the marketdatabase based on a similarity level of the at least one substituteingredient compared with the at least one ambiguous ingredient in thefood recipe.
 18. The computer system of claim 15, further comprising:prioritizing, by the computer, the determined one or more availableoptions for the at least one substitute ingredient found in the marketdatabase based on availability of the one or more identified Internet ofThings (IoT) enabled cooking devices and an amount of time to completethe food recipe.
 19. The computer system of claim 15, whereinperforming, by the computer, a multi-factor optimization furthercomprises sales goals of the market and a similarity level of the atleast one substitute ingredient compared with the at least one ambiguousingredient in the food recipe.
 20. The computer system of claim 15,further comprising: adjusting, by the computer, one or more settings tobroaden or narrow a list of available options at a market for the atleast one substitute ingredient based on user input.